package com.zhoux.api.io.raf;

import java.io.*;
import java.util.Scanner;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/25 11:31
 *
 * 简易记事本工具
 * 程序启动后要求用户输入一个文件名, 然后对该文件进行写操作
 * 之后用户输入的[每一行]字符串都写入该文件中, 写入文件的数据不用考虑换行问题
 * 当用户单独输入 ”exit“ 时程序退出
 *
 */
public class Note {

    public static void note(String file){
        Scanner in = new Scanner(System.in);
        RandomAccessFile raf = null;
        try {
            raf = new RandomAccessFile(file,"rw");
            while (true){
                System.out.println("请输入要写入的字符串: ");
                String str = in.nextLine();
                if ("exit".equalsIgnoreCase(str))
                {
                    break;
                }else {
                    str += "\n";
                    byte[] data = str.getBytes("utf-8");
                    raf.write(data);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                raf.close();
                System.out.println("退出成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {

        String filename = ".\\src\\main\\java\\com\\zhoux\\file\\";
        System.out.println("请输入一个文件名: ");
        Scanner in = new Scanner(System.in);
        // 用户输入一个文件名
        String filename2 = in.nextLine();
        filename += filename2;
        note(filename);
    }
}
